package com.lekang.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;
import java.util.List;

/**
 * 楼层对象 floor
 *
 * @author zhihao
 * @date 2025-10-13
 */
public class Floor extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID（数据库字段） */
    private Long id;

    /** 楼层名称（数据库字段） */
    @Excel(name = "楼层名称")
    private String floorName;

    /** 排序号（数据库字段） */
    @Excel(name = "排序号")
    private Long sortNo;

    /** 逻辑删除（数据库字段） */
    @Excel(name = "逻辑删除")
    private Long isDeleted;

    /** 额外字段1（数据库字段） */
    @Excel(name = "额外字段1")
    private String extraField1;

    /** 额外字段2（数据库字段） */
    @Excel(name = "额外字段2")
    private String extraField2;

    // ===================== 内存级关联字段（无数据库对应字段）=====================
    /**
     * 关联：当前楼层下的所有房间（1对多）
     * 说明：楼层直接关联房间，房间再关联房型（通过room中的roomType属性）
     */
    private List<Room> roomList;  // 核心修改：替换roomTypeList为roomList
    // =============================================================================

    // 原有getter/setter（保持不变）
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }
    public String getFloorName() { return floorName; }
    public void setFloorName(String floorName) { this.floorName = floorName; }
    public Long getSortNo() { return sortNo; }
    public void setSortNo(Long sortNo) { this.sortNo = sortNo; }
    public Long getIsDeleted() { return isDeleted; }
    public void setIsDeleted(Long isDeleted) { this.isDeleted = isDeleted; }
    public String getExtraField1() { return extraField1; }
    public void setExtraField1(String extraField1) { this.extraField1 = extraField1; }
    public String getExtraField2() { return extraField2; }
    public void setExtraField2(String extraField2) { this.extraField2 = extraField2; }

    // ===================== 关联字段的getter/setter（同步修改）=====================
    public List<Room> getRoomList() { return roomList; }
    public void setRoomList(List<Room> roomList) { this.roomList = roomList; }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("floorName", getFloorName())
                .append("sortNo", getSortNo())
                .append("isDeleted", getIsDeleted())
                .append("extraField1", getExtraField1())
                .append("extraField2", getExtraField2())
                .append("roomList", getRoomList()) // 补充新关联字段打印
                .toString();
    }
}